#include"nodeList.h"
#include"node.h"
#include<iostream>

/**
 * Létrehoz egy csúcspontot
 * @param id A csúcs azonosítója
 */
Node::Node(int id): id(id)
{

}

/**
 * Kitörli a csúcspontot
 */
Node::~Node()
{

}

/**
 * A csúcsot összeköti egy másik csúccsal (csak egy irányban)
 * @param newNode Amelyik csúcsot akarjuk hozzáadni az aktuálishoz
 */
void Node::addNeighbour(Node* newNode)
{
    this->edges.addNode(newNode);
}

/**
 * Megszámolja a csúcspont fokszámát
 * @return A csúcs fokszáma
 */
int Node::getDegree()
{
    int s=0;
    for(int i=0;i<this->edges.getSize();i++)
    {
        if(this->edges[i]->getId()==this->id)
        {
            s++;
        }
    }
    return this->edges.getSize()+s;
}

/**
 * Visszaadja a csúcs azonosítóját
 * @return A csúcs azonosítója
 */
int Node::getId()
{
    return this->id;
}


/**
 * Visszaadja a csúcs szomszédainak listáját
 * @return Szomszédos csúcsok listája
 */
NodeList& Node::getNeighbours()
{
    return this->edges;
}
